Today, users can access many types of data communications networks (e.g. the Internet, an asynchronous transfer mode (“ATM”) network, a local area network (“LAN”), a wide area network (“WAN”), etc.) to transmit data across the networks and receive data through the networks. For example, the Internet comprises a network interconnecting many nodes, and voice, video, graphics, text, and other data are often exchanged between the various nodes over the network. In a typical scenario, a user inputs a command to a personal computer (“PC”) to instruct the personal computer to establish a connection with an Internet Service Provider (“ISP”) located at a particular node (i.e. an ISP node) of the network. The PC may establish such a connection with the ISP node via a modem, a digital subscriber line (“DSL”), a T1 line, etc. Once the connection is established, the user can input various commands to his or her PC to transmit and receive data over the Internet via the ISP node.
When the user transmits data over the Internet, he or she generally needs to directly or indirectly specify a destination address of the destination node to which the information is intended to be delivered. For example, if the user would like to send an electronic mail (“e-mail”) message to a particular person, he or she must specify the email address of the destination node at which the particular person accesses e-mail. On the other hand, when the user would like to receive data from the Internet, he or she generally needs to directly or indirectly specify a source address of the source node from which the information is to be retrieved. For example, if the user would like to access a web site of a particular company, he or she can specify the HyperText Transfer Protocol (“HTTP”) address corresponding to the source node on which the web site is stored. Alternatively, the user can select a “link,” which identifies the web site and which is generated via an Internet browser software program contained on the user's PC.
The user can also input commands to the PC to instruct the ISP to establish a connection between the ISP node and another node of the network so that full application level communications can be performed between the nodes. One example of such communications is a video conferencing application in which video and audio data are transmitted between the nodes. In order to establish a full application level communication, multiple sessions or process flows must be initiated between the nodes, including various ports of the nodes, to enable the proper transfer of data. In one implementation, a session is a request to open a file transfer protocol (“FTP”) application that results in the creation of several additional sessions or process flows. Moreover, a session may open child sessions to any level necessary.
At any given time, the number of sessions that are generated by the ISP node is random, depending on the number of users that would like to establish communications via the ISP node and depending on the times that the users desire such communications. Moreover, since the establishment of one session results the in creation of additional sessions, which in turn, may result in the creation of yet additional sessions, the number of sessions directly or indirectly created by a user tends to occur in bursts when the user requests an initial session to be created. In particular, for each burst, several sessions are initially opened in order to accommodate the desired application. Then, as the application reaches its conclusion, the number of sessions decreases until there are no more active sessions.
For example, FIG. 1 graphically illustrates a scenario in which a first user (i.e. user 1) and a second user (i.e. user 2) request various sessions to be created. As shown in the figure, the requests for and creations of sessions occur in bursts that increase and decrease over time. Also, between such bursts, periods of time exist in which there is no session activity.
As the number of users increases, the burst pattern of the sessions generated by an ISP node evolves into a more stable pattern, due to the random numbers and random times that the sessions are generated. For example, FIG. 2 graphically illustrates the number of sessions generated by an ISP node that is utilized by a company that has a relatively large number of users. As shown in the figure, the average number of activated sessions in the ISP node at any given time is approximately thirty, the maximum number of activated sessions is approximately thirty nine, and the minimum number of activated sessions is approximately twenty two.
The number of sessions opened or activated by each user, as well as the number of sessions opened or activated by an organization, is of interest to the ISP. However, efficiently monitoring and controlling the number of sessions activated by a specific company, organization, or user is difficult. Accordingly, an organization with multiple users can defraud the ISP relatively easily by registering the organization with the ISP via a single user account and paying low access rates that are determined based on bandwidth usage of the average single user. Then, the multiple users of the organization can activate a large number of sessions and utilize bandwidth that greatly exceeds the sessions activated and bandwidth consumed by an average single user. Moreover, when a burst of sessions created by the multiple users of the organization starts, the ISP generally has no choice but to handle the burst, regardless of the level of service actually ordered by the organization.